Certain applications may require modification of a large set of files and/or directories in a file system for a single transaction. In these types of user-level file system transactions, the different file system operations for a single transaction should be atomic to reduce the likelihood of an inconsistent state in the event of system/application crash or concurrent access.
However, current solutions to support a full range of file system operations in a transaction-based context are complex and require customization. As an example, some solutions may require the use of logs to keep track of the different file system operations being performed. In addition, some solutions may require making copies of files, which can significantly increase the overall transaction time and consume storage resources.
Throughout the description, similar reference numbers may be used to identify similar elements.